home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
PC World Komputer 2010 April
/
PCWorld0410.iso
/
pluginy Firefox
/
1419
/
1419.xpi
/
chrome
/
content
/
ietabExtApp.js
< prev
next >
Wrap
Text File
|
2009-05-26
|
2KB
|
53 lines
var IeTabExtApp = {
HKEY_CLASSES_ROOT: 0,
HKEY_CURRENT_CONFIG: 1,
HKEY_CURRENT_USER: 2,
HKEY_LOCAL_MACHINE: 3,
HKEY_USERS: 4,
getRegistryEntry: function(regRoot, regPath, regName) {
try {
if ("@mozilla.org/windows-registry-key;1" in Components.classes) {
var nsIWindowsRegKey = Components.classes["@mozilla.org/windows-registry-key;1"].getService(Components.interfaces.nsIWindowsRegKey);
var regRootKey = new Array(0x80000000, 0x80000005, 0x80000001, 0x80000002, 0x80000003);
nsIWindowsRegKey.open(regRootKey[regRoot], regPath, Components.interfaces.nsIWindowsRegKey.ACCESS_READ);
if (nsIWindowsRegKey.valueCount)
return nsIWindowsRegKey.readStringValue(regName);
}
} catch(e) {}
return null;
},
getIExploreExePath: function() {
var regRoot = this.HKEY_LOCAL_MACHINE;
var regPath = "SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\App Paths\\IEXPLORE.EXE";
var regName = "";
return this.getRegistryEntry(regRoot, regPath, regName);
},
removeArrayNullElements: function(a) {
var result = [];
while(a.length) {
var elmt = a.shift();
if (elmt) result.push(elmt);
}
return result;
},
runApp: function(filename, parameter) {
if ((!filename) || (filename == "")) filename = this.getIExploreExePath();
var nsILocalFile = Components.classes["@mozilla.org/file/local;1"].getService(Components.interfaces.nsILocalFile);
nsILocalFile.initWithPath(filename);
if (nsILocalFile.exists()) {
var paramArray = parameter ? parameter.split(/\s*\"([^\"]*)\"\s*|\s+/) : [];
paramArray = this.removeArrayNullElements(paramArray);
var nsIProcess = Components.classes["@mozilla.org/process/util;1"].createInstance(Components.interfaces.nsIProcess);
nsIProcess.init(nsILocalFile);
nsIProcess.run(false, paramArray, paramArray.length);
return true;
}
return false;
}
};